﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using MbUnit.Framework;
using Protocolo;

namespace pruebasunitarias
{
    [TestFixture]
    public class PruebaBD
    {
        Persona Person;
        String nombre;
        String nombre2;
        String apellido;
        String apellido2;
        int cedula;
        String correo;
        String login;
        String password;
        int tipo_usuario;

        Guia Gui;
        int Exp;
        String Carrera;
        String Año_semestre;
        String Alergias;
        String Vehiculo;

        Organizador Org;
        String Int_Ext; 
        //si es int     
        String Dependencia;
        int Extucab;
        IList al;

        Organizador p,p1;

        [SetUp]
        public void Init()
        { 
            //Primer Organizador (SavedPerson)
            p = new Organizador();
            p.Nombre="Emma";
            p.Nombre2="Cristina";
            p.Apellido = "Da Silva";
            p.Apellido2 = "Sambade";
            p.Login = "emma.Da.2";
            p.Password = "123456";
            p.Correo = "emma.da.1@gmail.com";
            p.Int_Ext = "Ext";
            p.tipo_usuario = 2;
            p.CI = 16273420;

            //Segundo Organizador (Update)
            p1 = new Organizador();
            p1.Nombre = "Emma";
            p1.Nombre2 = "Cristina";
            p1.Apellido = "Da Silva";
            p1.Apellido2 = "Sambade";
            p1.Login = "emma.Da.5";
            p1.Password = "123456";
            p1.Correo = "emma@gmail.com";
            p1.Int_Ext = "Ext";
            p1.tipo_usuario = 2;
            p1.CI = 16273420;

            
            
            nombre = "Emma";
            apellido = "Da Silva";
            cedula = 16273420;
            correo = "emmucha@gmail.com";
            login = "emma.Da.1";
            password = "algo";
            tipo_usuario = 2; // Es organizador
            Exp= 69000;
            Carrera= "Ingenieria";
            Año_semestre= "9no";
            Alergias= "Si";
            Vehiculo= "No";
            
            Int_Ext="Int_Ext";
            
           

        }

        [Test]
        public void Prueba1login ()
        {
            String en = Protocolo.Encriptar.Encrypt("algo", "Password");
            Assert.IsNotNull(en);
            Protocolo.Persona pe = (Protocolo.Persona)BaseDeDatos.BD.Login("Persona", en, "password");
            Assert.IsNotNull(pe);
            Assert.AreEqual(apellido,pe.Apellido.Trim());

        }
        [Test]
        public void PruebaConsultar()
        {
            String query = "from Persona where cedula ="+cedula;
            al=(IList)BaseDeDatos.BD.Consultar(query);
            Protocolo.Persona pe = (Protocolo.Persona)al[0];
            Assert.IsNotNull(pe);
            Assert.AreEqual(login, pe.Login);
            
        }
        [Test]
        public void PruebaSavedPerson()
        {   
            BaseDeDatos.BD.SavePerson(p);
            String query = "from Persona where cedula =" + cedula;
            al = (IList)BaseDeDatos.BD.Consultar(query);
            Assert.IsNotNull(al);
            Assert.AreEqual(((Organizador)(al[0])).CI, cedula);

        }
       [Test]
        public void PruebaUpdate()
        {
            p1.Apellido2= "Goncalves";
            p1.id_persona = 7;
            BaseDeDatos.BD.Update(p1);
            String query = "from Persona where cedula =" + cedula;
            al= (IList)(BaseDeDatos.BD.Consultar(query));
            Assert.IsNotNull(al);
            Assert.AreNotEqual(((Organizador)(al[0])).Apellido,apellido);
            

        }

        [TearDown]
        public void limpiar()
        {
            nombre = null;
            apellido = null;
            cedula = 0;
            correo = null;
            login = null;
            password = null;
            tipo_usuario = -1;
            Exp=0;
            Carrera=null;
            Año_semestre=null;
            Alergias=null;
            Vehiculo=null;
            //P = null;
            Int_Ext = null;
        }
    }
}
